package com.zhisheng.demo03_Stream_Hello;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 创建者： 智晟全哥
 * 练习Stream流中收集数据的方法
 *
 *
 */
public class MyStream4 {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("张三", "李四", "强", "伟", "李四", "强", new String("张三"));
        // 去除一个字的数据和重复的数据,收集到数组
//        Object[] array = stream.filter(s -> s.length() > 1).distinct()
//                .toArray();
//
//        System.out.println(Arrays.toString(array));

        // 收集到单列集合list
//        List<String> list = stream.filter(s -> s.length() > 1).distinct().toList();
//        System.out.println(list);

        // 收集到单列集合set
//        Set<String> set = stream.filter(s -> s.length() > 1).distinct().collect(Collectors.toSet());
//        System.out.println(set);

        // 收集到map集合
        Map<String, String> map = stream.filter(s -> s.length() > 1).distinct().collect(Collectors.toMap(y ->
                        // 此时的y代表的就是Stream流中此时剩余的每一个元素,自己规定,使用姓作为key,使用名作为value
                        y.substring(0, 1)
                , y -> y.substring(1)));
        System.out.println(map);


    }
}
